23

» WarCraft 3 / Мемхак

Похожие вопросы:

ответ
	//globals
	integer array VariousFramesAddresses
	constant integer GOLD_TEXTFRAME_ADDRESS_INDEX=1
	constant integer LUMBER_TEXTFRAME_ADDRESS_INDEX=2
	constant integer UPKEEP_TEXTFRAME_ADDRESS_INDEX=3
	constant integer SUPPLY_TEXTFRAME_ADDRESS_INDEX=4

//memhack init
	set pGetFrameTextAddress = GameDLL + 0x61C7B0
	
function GetFrameTextAddress takes string name, integer id returns integer
	return CallFastCallWith2Args(pGetFrameTextAddress, GetStringAddress(name), id)
endfunction

function GetResourceBarsAddresses takes nothing returns nothing
	local integer a=GetFrameTextAddress("ResourceBarGoldText",0)
	if a>0 then
		set VariousFramesAddresses[GOLD_TEXTFRAME_ADDRESS_INDEX]=a
	endif
	set a=GetFrameTextAddress("ResourceBarLumberText",0)
	if a>0 then
		set VariousFramesAddresses[LUMBER_TEXTFRAME_ADDRESS_INDEX]=a
	endif
	set a=GetFrameTextAddress("ResourceBarSupplyText",0)
	if a>0 then
		set VariousFramesAddresses[SUPPLY_TEXTFRAME_ADDRESS_INDEX]=a
	endif
	set a=GetFrameTextAddress("ResourceBarUpkeepText",0)
	if a>0 then
		set VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX]=a
	endif
		
endfunction

call CallThisCallWith2Args(GameDLL+0x60CA10,VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX],GetStringAddress("random str "+I2S(GetRandomInt(1,2000))))
ответ
вылетает при поиске имени переменной, возможно создаются строки из байт (ConvertString че-то там) неверным путём
ответ
DracoL1ch:
офсет 2589 *4 , я ж только что сказал
Всё, немного поковырявшись у меня получилось, нужно было еще (id * 4) еще раз умножить на 4. Теперь строки извлекает идеально.
Если кому-то интересно, выглядит это вот так:
	DWORD ReadPointer(DWORD addr)
	{
		return *(DWORD*)(addr);
	}

	DWORD GetJassContext(int id)
	{
		DWORD pJassEnvAddress = DWORD(GetModuleHandle(TEXT("Game.dll"))) + 0xADA848;
		return ReadPointer(ReadPointer(ReadPointer(ReadPointer(pJassEnvAddress) + 0x14) + 0x90) + id * 4);
	}

	DWORD GetStringTable()
	{
		DWORD pJassContext = GetJassContext(1);
		return ReadPointer(ReadPointer(pJassContext + 0x2874) + 0x8);
	}

	std::string from_jString(jString jstrHandle)
	{
		DWORD pStringTable = GetStringTable();
		const char* sptr = (const char*)ReadPointer(ReadPointer(pStringTable + ((jstrHandle * 4)*4) + 0x8) + 0x1C);
		return sptr;
	}
ответ
Ну содержимое у restore само собой разное, в детекте урона новый хук на выход, вам нужна функция загрузки библиотеки?
Это же дело над:

function LoadLibrary takes string nDllName returns integer
    if pLoadLibraryA == 0 then
        set pLoadLibraryA = GetModuleProcAddress("Kernel32.dll", "LoadLibraryA" )
    endif
    if pLoadLibraryA != 0 then
        return CallStdcallWith1Args(pLoadLibraryA,GetStringAddress(nDllName))
    endif
 
    return 0
endfunction

23

» WarCraft 3 / Передвижение

Похожие вопросы:

ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
Никак нельзя отключить ИИ нейтральных игроков, ваще никак! Один и тот же вопрос бля каждую неделю.
Не используйте нейтралов в качестве ходячих и атакующих крипов, не оберётесь багов.
Насчет умных - а как в доте сделано, а там это сделано только когда играют обсервы + там пипец много костылей или багов, вроде реаз в 3 делать каждому юниту -SetUnitPosition в его текущие координаты, полностью тригггерный ии башен и автоатаки крипов (это внезапно еще и ресурсоёмко).
ответ
Steal nerves:
а почему так? отравленное оружие настраивает на сколька понизить в %. а сколько не ставь, все одно. мб что-то не правильное. абилка что ли бракованная

все врубился, понял формулу:
скорость = Текущая скорость - (Текущая скорость * процент снижения)
слишком большие проценты ставил, в результате не видел, и выходило ниже скорость. А так как стоят ограничения в скорости (мин = 150, макс = 400 в константах), то упиралась в минималку, и не видел изменения, из-за чего ошибочно начал теории строить.

в абилках "отравленное оружие" и "яд" дриады - поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки .
ответ
Вопрос решён. Оказывается это всё из-за моей тупости и из-за того, что чем больше войск заливается, тем меньше урона каждый из них получает. Если тестить по одному футмену, то урон нормальный, а если тестить группу, то урон уменьшается.

23

» WarCraft 3 / Анимации портрета

Похожие вопросы:

ответ
Лучше проверить, присоединён ли он к тем же костям, что и соседние вершины. Если нет — присоединить. Если да, то как сказали Melissa и nvc123.
ответ
Katrusska:
Если нужна карта, то могу скинуть :)
Но, думаю, что проблема не в ней, да и мой "суперпроект" раскрывать не хотелося.
Повтори действие наново, удали нестандартную модель, переназначь модель орудийного расчета и вообще всегда делай копии своей карты, а вообще делай эксперементы в разних картах а то что получилось лишь тогда пихай в карту....
ответ
держи
ответ
Ладно будем надеяться что кто-то что-то придумает.
ответ
8gabriel8, Вот, упрямый ведь! Берёшь скачиваешь свою модель, которую ты кинул в топик, рассчитываешь границы, импортируешь, для точности в новую карту 32x32 и если после этого портрет невидим, я в блоге напишу, что я гей. Конечно при условии, что ты все правильно сделаешь.

23

» WarCraft 3 / Благословение Элуны

Похожие вопросы:

ответ
Хозяин Миров:
Если нужно, чтобы было 2 в одном, то, думаю, тут надо чуток триггеров, надо сделать 2 способности, одну из которых скрыть, а другой дать всё описание. И запускать вторую триггером, через событие запуска заклинания.
ответ
Нет, далеко не все фишки и особенности известны. Все способности описаны в движке игры, защита от магии горного великана это клон множества абилок защиты от магии, главная их суть - выдать классификацию герой юниту. Т.е после появления этой способности горный великан становится героем и его нельзя полиморфить, переманивать и так далее.
Применять на маг имунных можно только высшие заклинание - т.е только геройские, у который требование к уровню выше 1, в до целях уязвимые\неуязвимые.

23

» WarCraft 3 / Удобный Импорт

Похожие вопросы:

ответ
Я бы удалил все файлы из данной карты, затем вставил туда все файлы из бекапа, а потом макросом прошелся по каждому файлу, изменив ему стандартный путь на нужный. Рекомендую макрос Easy Macro Recorder.
ответ
Вариации работают так: в адресе файла модели декорации указывается типа [MyModel].mdx, но этого файла на самом деле нет, а есть только файлы вариации типа [MyModel]0.mdx, [MyModel]1.mdx, [MyModel]2.mdx и т. п.

23

» WarCraft 3 / При изучение способности иконка пропадает.

Похожие вопросы:

ответ
система урона + ледяные стрелы = при получении урона, идет проверка на бафф, удаляешь бафф и, либо кастуешь даммиком способность кислотная бомба или духовное пламя с отриц. значением минус в том что бафф будет висеть как положительный. Либо под таймером даешь даешь способность повышения защиты с отриц. значением.
Учитывая что 21 век, систему урона найти и поставить, не составит труда.

23

» WarCraft 3 / Не получается импортировать

Похожие вопросы:

ответ
Вот правильные пути:
baal.blp
Baal.mdx
Baal_portrait.mdx
То есть просто названия файлов должны быть путями.
ответ
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе

В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.

Только там такой срач и дичь, что лучше реально своими руками с нуля писать...
ответ
Stalker Freedom:
Чаще всего проблема заключается в том, что юные маперы забывают импортировать текстуры. Ты ведь всё правильно импортировал?

23

» WarCraft 3 / Триггерный склон?

Похожие вопросы:

ответ
В одной из миссий за нежить в TFT есть рычаг, при уничтожении которого определённая область заливается водой. Посмотри, как там сделано.
Там Артасу и Ануб'араку надо было пройти сквозь тучу башен, герои их залили водой, башни уничтожились.
ответ
~8gabriel8:
По какой-то загадочной причине некоторые давно обновлённые модели в кампании стали старыми. После того, как модель залил заново, стало нормально вроде.

23

» WarCraft 3 / Ошибка при загрузке карты в World Edit

Похожие вопросы:

ответ
call BJDebugMsg(string) отладка в редакторе.
ответ
Возможно, крашнулось при работе с текстурой, но без карты точно не скажешь. Удаляй модели и текстуры, которые добавлял перед крашем, пока не найдешь виновника.
ответ
Крашлог и карту желательно, мб где то пропустили скобку?
ответ
PhysCraft, да, карта вполне могла сломаться при пересылке. Попробуй переслать обратно и проверить откроется ли она у твоего напарника.
ответ
~8gabriel8:
UrsaBoss:
Всё из за настройки "Качество текстур"
А что делать, я не совсем понял)
Наверное, какая-то текстура имеет размеры не кратные степени двойки.

23

» WarCraft 3 / Снова проблема в модели

Похожие вопросы:

ответ
Ну вообще в Mdlvis'е есть возможность редактировать нормали. Отображение их включается нажатием горячей клавиши N.
ответ
Для каждого дерева нужны три модели: обычная, неактивная (с названием Doodads\Terrain\AshenTree\AshenTree0S.mdx, например) и неактивная разрушенная (Doodads\Terrain\AshenTree\AshenTree0D.mdx). У неактивных моделей должна быть только одна анимация — Stand. У первой — только деревце, у второй — только пенёк, соответственно.
Когда с деревом никто не взаимодействует, отображаются неактивные модели. Ты их не заменил, потому такая вот фигня.
Как сделать полноценно работающие деревья с моделями, не заменяющими стандартные, я не знаю. Возможно, никак.
ответ
Нужно в W3ME сделать:
редактировать >>> рассчитать границы.
ответ
Смотри, в основном в моделях так, либо просто удаляешь в пути текстуры war3mapimorted\ и все, а иногда требуют и так Textures\имя файла импорта.blp. сами модели и без пути который тоже можно задать хорошо работают. а посмотреть что требуется, нужно зайти в саму модельку через ME и в менеджере текстур глянуть путь, там могут быть и стандартные пути текстур которые есть в варике их импортировать не надо. Думаю понятно объяснил.

23

» WarCraft 3 / Цвет текстуры

Похожие вопросы:

ответ
Статья есть на эту тему:
XGM
ответ
~8gabriel8:
PhysCraft, он уже пробовал этот метод. Не подошёл из-за белых портретов.
Steal nerves, извини, обманул тебя. Чтобы сделать вынесение в отдельную поверхность, надо сначала удвоить вершины. Но только почему-то нормально не работает, часть вершин не удваивается.
Сейчас посмотрю, как с анимацией текстур работал.
А ведь ты не сделал копию анимаций, просто продублировал имеющиеся, дав им название с тэгом. Это не даст желаемого.

Извини, но пока путного не получается. Может быть опосля придёт умная мысля.
По идее всё равно надо делать реальную копию анимационного ряда, а не просто дать новое название тем же кадрам. Может быть ты в процессе копирования кадров согласишься, что легче создать кучу крестьянок с новыми моделями в РО и триггерно их заменять, чем одну почти такую же тяжёлую за счёт анимаций модель с тэгами. При этом не факт, что у неё с портретом будет порядок.

23

» WarCraft 3 / Ошибка mdlvis

Похожие вопросы:

ответ
может проблема с дровами
ответ
Тогда можно его поправить через редактор текстур mdlvis, ему пофигу. Просто заменить проблемный путь на корректный.
ответ
напиши создателю mdlvis
если найдёшь его а также у него будут исходники и желание фиксить баги то мб пофиксит
но скорее всего как минимум 2 и 3 пунктов будут отсутствовать
ответ
XGM Bot:
Похожие вопросы:

ответ
советую переименовать модель\заребутить комп
текстуры стандартные юзал, я так понимаю


23

» WarCraft 3 / Меню кампании

Похожие вопросы:

ответ
~8gabriel8:
Это зависит от камер и анимаций. Сначала воспроизводится анимация Birth, которая и представляет приближение, потом Stand, там везде свои камеры. Посмотри в war3me у модели экрана, как там сделано. Подробную статью о работе с камерами в этих моделях не встречал.
Вариант ApEJI про вращение модели вместо кучи камер тоже норм. Типа в Birth вращение сделать. Но у меня, например, не такие высокие навыки в анимировании, чтобы сразу много объектов правильно сдвигать, мне предпочтительнее камер наделать.
ответ
"Скилл джаггера их доты" выложен в миллион и одном месте, даже я делал разбор - xgm.guru/p/wc3/omnislash
Реализация примитивна, мгновенное перемещение к цели и приказ атаковать, можно так же эмитировать атаку анимацией и уроном от лица героя как сделано в доте.

23

» WarCraft 3 / Очередные проблемы с расположением декораций

Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.
ответ
Stalker Freedom:
quq_CCCP:
если удалить способность на прямую или скрытый спеллбук она пропадет...
Вот, ровно в точку, именно это меня интересует! Как удалить способность напрямую?
если есть 3 абилы, делаем три спеллбука
и потом удаляем нужный
ответ
Steal nerves:
PT153:
Вспомнил про один баг. Есть сделать PauseTimer() на периодический таймер, а потом на этой таймер использовать ResumeTimer(), то таймер повторит свой цикл лишь раз, а потом остановится.
сам не пользуюсь ResumeTimer, но щас проверил, действительно не работает что-то. Видимо, это работает только тогда, когда таймер не до конца дошел.
можно обойтись и без ResumeTimer
понимаю, ты хочешь сделать какое-то ограничение после возвращения урона. Спустя 3 секунды возвратка может снова возвращать урон.
Можно было сделать по-другому.
Еще не понимаю, зачем нам нужен периодический таймер.
  1. можем логическую переменную b завести и таймер t
  2. нанес противник урон = проверяем логическую переменную, если истина, запускаем одноразовый таймер, и ставим ложь в логической переменной = false
if b then 
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.?mdl",u,"origin"))
call UnitDamageTarget(udg_u,u,r*5,false, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_WHOKNOWS)
call BJDebugMsg("Reflected:"+R2S(r*5))
call TimerStart(udg_t,0.5,false,function t3a)
set b = false
endif
  1. когда таймер запустится
function t3a takes nothing returns nothing
    call PauseTimer(udg_t)
    set b = true
endfunction
думаю все что надо это call ResumeTimer() заменить на call TimerStart()
ответ
Вот условие на проверку баффа. Но тут может быть проблема, если у тебя есть станящие способности, которые используют не этот бафф.
Но мой способ, предложенный выше, также должен работать, причём независимо от того, какой станящий бафф наложен.

23

» WarCraft 3 / Простые триггеры.

Похожие вопросы:

ответ
set day\night cycle On/Off в разделе Инициализация сражение или в Окружении
Хочется банить за такие вопросы в 2015 году.
ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
xgm.guru/p/wc3/trigger_basics Читайте статьи
ответ
Вот, например
Вот ещё.
И ещё.
ответ
Событие: Юнит умирает.
Условие: Тип юнита (Убивающий юнит) = Огр
Действие: Установить Custom Value Убивающего юнита = Custom Value Убивающего юнита +1
Если Custom Value Убивающего юнита = 3, то заменить Убивающего юнита на Циклопа.
По умолчанию Custom Value каждого юнита равно нулю, если триггерами не менять.

23

» WarCraft 3 / Preload

Похожие вопросы:

ответ
\r\n
перенос в не-юниксах
ответ
Только ретурн багом с помощью хака на память, но там вроде и так реализован пример создания тхт файла...
Вопрос только зачем?
ответ
нужно так Preload (строка), Preload( строка) и так 100500 раз
ответ
Кривоватая подгрузка, удалять не обязательно. Лучше юзать preload без этаких костылей, темболее в JASS есть механизмы автоматического создания pld скриптов.

23

» WarCraft 3 / CommandStrings.txt

Похожие вопросы:

ответ
без мемхака - нет
ответ
Оба файла удаляются, потому что ты импортируешь их в карту через программу и не добавляешь данные о файлах в файл импорта(war3map.imp). При сохранении карты в редакторе архив пересобирается, и в него добавляются сторонние файлы, которые сохранены в том самом файле импорта. Поэтому используй стандартный менеджер импорта в редакторе.

23

» WarCraft 3 / Вопрос по способностям с превращениями.

Похожие вопросы:

ответ
как привязать переменную к существу
хэш,кс,структуры
выбор обширен
все варианты расписаны в статьях

23

» WarCraft 3 / Вывод в файл

Похожие вопросы:

ответ
Деоптимизатор слабо юзать? Есть RMPQ он позволяет вернуть ро коды, и многое другое...
ответ
Что мне делать? Создавать новую тему с одним вопросом?
Три вопроса = три темы, логично же.

23

» WarCraft 3 / Отравленный кинжал

Похожие вопросы:

ответ
еще можно кислотной бомбой алхимика
у нежити есть death coil
огненная стрела (авто-каст)
у медузы есть разветвленная молния (мб можно настроить)
еще есть паразит

23

» WarCraft 3 / Так почему же юнит удаляется?

Похожие вопросы:

ответ
Группы юнитов + хэш или структуры. При касте спелла берешь кастера, берешь его ID, проверяешь не записана ли группа в какой-либо из ячеек. Если нет - создаешь группу и записываешь её в ячейку. При смерти юнита делаешь проверку не записана ли по его ID группа юнитов - если записана - удаляешь его и проверяешь количество юнитов в группе и если оно равно 0 - удаляешь группу. Естественно хэш тоже чистишь всюду где нужно.

Это звучит как "Сделайте мне пожалуйста систему формаций". Чтобы научить тебя как это сделать придётся потратить несколько десятков часов. И тут 2 варианта: либо ты будешь читать статьи и выучишь всё сам, либо обращайся к отдельным пользователям и проси о приватных, платных, уроках в частном порядке.
Вопрос вообще ни о чём. То, о чём ты спрашиваешь делается за 20-30 минут + несколько часов на всякие плюшки и дебаг (в худшем случае).
Конкретно тебе стоит почитать о Локальных переменных, Хэше или Структурах.
ответ
Юзай XT + структуры.
Лично я ХТ использую только для связи инстанции структуры и таймера.

23

» WarCraft 3 / Двойной инвентарь

Похожие вопросы:

ответ
SetUnitPropWindow
Спс, что то раньше этой нативки не видел, ну пока сделал на пересоздании предмета, там посмотрим.